package com.easygem.front.mapper;

import com.easygem.common.model.front.TaskPackageResource;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

/**
 * @author 李鹏志
 * @version 1.0
 * @Description TODO
 * @date 2024/12/23 16:22
 */
public interface TaskPackageResourceMapper extends Mapper<TaskPackageResource>, com.easygem.business.mapper.Mapper<TaskPackageResource> {
    /**
     *  根据资源id删除未分配的资源
     * @param resourceIds 资源id列表
     * @return
     */
    int delByTPResourceId(@Param("resourceIds") List<Long> resourceIds);
    /**
     * 批量分配资源
     * @param userList 用户列表
     * @param resourceList 资源列表
     * @param taskPackageId 任务包id
     * @return
     */
    int batchAllocationResource(@Param("userList") List<Long> userList,
                                @Param("resourceList") List<Long> resourceList,
                                @Param("taskPackageId") Integer taskPackageId);

    /**
     *  回收资源
     * @param resourceIds 资源id列表
     * @return 回收的数量
     */
    int recycleResources(@Param("resourceIds") List<Long> resourceIds);

    /**
     * 查询已分配的资源
     * @param tPResource 任务包资源
     * @return 已分配的资源列表
     */
    public List<TaskPackageResource> getAllAssignedResources(TaskPackageResource tPResource);
    /**
     * 查询未分配的资源
     * @param tPResource 任务包资源
     * @return 未分配的资源列表
     */
    public List<TaskPackageResource> getNotAssignedResources(TaskPackageResource tPResource);

    /**
     *  导出任务包资源
     * @param resourceIds 资源id列表
     * @return  资源列表
     */
    public List<TaskPackageResource> downTPExcel(@Param("resourceIds") List<Long> resourceIds);

    /**
     * 根据任务包id查询所有资源
     * @param taskPackageId 任务包id
     * @return 资源列表
     */
    List<TaskPackageResource> getAllResources(@Param("taskPackageId") Integer taskPackageId);

    /**
     *  根据手机号查询资源id
     * @param phones 手机号
     * @return 资源id
     */
    List<Long> getResourceIdByPhone(@Param("phones") List<String> phones,Integer taskPackageId);
    /**
     *  添加资源
     * @param resourceIds 资源
     * @return 添加的数量
     */
    int addTaskPackageResource(@Param("resourceIds") List<Long> resourceIds,
                               @Param("taskPackageId") Integer taskPackageId);
    /**
     *  根据手机号添加资源
     * @param phones 手机号
     * @param  taskPackageId 任务包id
     * @return 添加的数量
     */
    int addTaskPackageResourceByPhones(@Param("phones") List<String> phones,
                                       @Param("taskPackageId") Integer taskPackageId);
    /**
     * 根据手机号查重
     * @param taskPackageIds 传入的任务包编号（用来判断查重方式）
     * @return 处理的数量
     */
    Integer findDuplicatePhones(@Param("taskPackageIds") List<Integer> taskPackageIds);

    /**
     * 根据任务包id查询资源
     * @param taskPackageIds 任务包id集合
     * @return 资源列表
     */
    List<TaskPackageResource> getTaskPackageResourceByTaskPackageIds(@Param("taskPackageIds") List<Long> taskPackageIds);

    /**
     * 根据任务资源id删除任务资源表记录
     * @param TPResourceIds 任务资源id集合
     * @return 删除的数量
     */
    int delByTPResourceIds(@Param("TPResourceIds") List<Long> TPResourceIds);
}
